package org.desktop.web.client.emails.proxy;

import java.util.HashMap;
import java.util.Map;

import org.desktop.web.client.emails.EmailService;
import org.desktop.web.client.emails.EmailServiceAsync;
import org.desktop.web.shared.domain.entities.Email;

import com.google.gwt.core.shared.GWT;
import com.google.gwt.user.client.Cookies;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sencha.gxt.data.client.loader.RpcProxy;
import com.sencha.gxt.data.shared.loader.PagingLoadConfig;
import com.sencha.gxt.data.shared.loader.PagingLoadResult;

public class RpcEmailProxy extends
		RpcProxy<PagingLoadConfig, PagingLoadResult<Email>> {

	EmailServiceAsync service = GWT.create(EmailService.class);
	
	/**
	 * Carica i dati della griglia delle mail per utente.
	 * Il voloere dell'id dell'utente viene carcato all'interno dei cookies con il nome di "idUser".
	 * Se il cookie non è presente viene impostato a -1 e viene restituito un array vuoto. Generalmente viene utiizzato per la funzionalità di modifica
	 */
	@Override
	public void load(PagingLoadConfig loadConfig,
			AsyncCallback<PagingLoadResult<Email>> callback) {
		Map<String, String> headers = new HashMap<String, String>();
		headers.put("token", Cookies.getCookie("token"));
		String idUser = Cookies.getCookie("idUser");
		
		service.getEmailByUser((idUser==null || idUser.trim().equals("") ? -1:Integer.parseInt(idUser)), headers, loadConfig, callback);

	}

}
